import request from '@/utils/request'

/**
 * 分页查询数据字典类型
 *
 * @param {类型、类型名查询条件} query
 */
export function getTypeList(query) {
  return request({
    url: '/base/dictInfo/type/list',
    method: 'get',
    params: query
  })
}

/**
 * 分页查询数据字典类型码表
 *
 * @param {类型、类型名查询条件} query
 */
export function getCodeList(query) {
  return request({
    url: '/base/dictInfo/code/list',
    method: 'get',
    params: query
  })
}

/**
 * 删除数据字典信息
 * @param {数据字典ID} dictId
 */
export function deleteDictInfo(dictId) {
  return request({
    url: '/base/dictInfo/delete',
    method: 'post',
    params: { dictId }
  })
}

/**
 * 删除数据字典类型
 * @param {数据字典类型} dictType
 */
export function deleteDictTypeInfo(dictType) {
  return request({
    url: '/base/dictInfo/type/delete',
    method: 'post',
    params: { dictType }
  })
}

/**
 * 更新数据类型信息
 *
 * @param {类型更新信息} dictInfo
 */
export function updateDictTypeInfo(dictInfo) {
  return request({
    url: '/base/dictInfo/type/update',
    method: 'post',
    data: dictInfo
  })
}

/**
 * 更新数据字典信息
 *
 * @param {数据字典信息} dictInfo
 */
export function updateDictInfo(dictInfo) {
  return request({
    url: '/base/dictInfo/update',
    method: 'post',
    data: dictInfo
  })
}

/**
 * 新增数据字典信息
 * @param {数据字典信息} dictInfo
 */
export function createDictInfo(dictInfo) {
  return request({
    url: '/base/dictInfo/create',
    method: 'post',
    data: dictInfo
  })
}

/**
 * 上传文件批量导入数据字典信息
 * @param {*} fileobj
 * @param {*} obj
 */
export function importDictInfos(fileobj, obj) {
  if (!fileobj || !fileobj.file) {
    return {}
  }
  const param = new FormData()
  if (obj) {
    for (const key of obj) {
      param.append(key, obj[key])
    }
  }
  param.append('file', fileobj.file)
  return request({
    method: 'post',
    url: '/base/dictInfo/import',
    headers: { 'Content-Type': 'multipart/form-data' },
    data: param
  })
}

/**
 * 导出数据字典信息Excel模板
 */
export function exportDictInfoTemplate() {
  return request({
    url: '/base/dictInfo/template/export',
    method: 'get'
  })
}

/**
 * 检验数据类型是否存在
 *
 * @param {类型} dictType
 */
export function checkTypeExists(dictType) {
  return request({
    url: '/base/dictInfo/type/exists',
    method: 'post',
    params: { dictType }
  })
}
